package com.jzwl.site.wap.index.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jzwl.common.page.PageObject;
import com.jzwl.site.wap.index.dao.WebDao;

@Service("webService")
public class WebService {

	@Autowired
	private WebDao webDao;

	public boolean addClickInfo(Map<String, Object> map) {
		if (!webDao.isExist(map)) {
			return webDao.addClickInfo(map);
		} else {
			return false;
		}

	}

	public Map<String, Object> queryUsInfo() {
		return webDao.queryUsInfo();
	}

	public Map<String, Object> queryArticleById(String articleId) {
		return webDao.queryArticleById(articleId);
	}

	/**
	 * 1-根据节点获取文章
	 * (这里用一句话描述这个方法的作用)
	 * @Date 2018年9月6日
	 * @author gyp
	 * @param map
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public PageObject queryArticleListByNodeId(Map<String, Object> map) {
		return webDao.queryArticleListByNodeId(map);
	}

	public PageObject queryArticleList(Map<String, Object> map) {
		return webDao.queryArticleListByNodeId(map);
	}

	/**
	 * 1-获取文章详情
	 * @Date 2018年9月7日
	 * @author gyp
	 * @param paramsMap
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public Map<String, Object> getArticleDetail(String articleId) {

		return webDao.getArticleDetail(articleId);
	}

	/**
	 * 1-获取导航首页的推荐内容
	 * @Date 2018年9月7日
	 * @author gyp
	 * @param nodeId
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public Map<String, Object> getRecomdContent(String nodeId) {

		return webDao.getRecomdContent(nodeId);
	}

	public Map<String, Object> queryNodeInfo(Object nodeid) {
		return webDao.queryNodeInfo(nodeid);
	}

	/**
	 * 1-根据id获取节点的信息
	 * @Date 2018年9月11日
	 * @author gyp
	 * @param nodeid
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public Map<String, Object> queryNodeInfoById(Object nodeid) {
		return webDao.queryNodeInfoById(nodeid);
	}

	/**
	 * 1-根据导航的id获取文章的内容
	 * @Date 2018年9月7日
	 * @author gyp
	 * @param pid
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public List<Map<String, Object>> getRecomdArticleList(Object pid) {
		return webDao.getRecomdArticleList(pid);
	}

	public List<Map<String, Object>> queryNodeBypid(Object pid) {
		return webDao.queryNodeBypid(pid);
	}

	public List<Map<String, Object>> queryStaticInfo(String type) {
		return webDao.queryStaticInfo(type);
	}

	public List<Map<String, Object>> queryTopArticle() {
		return webDao.queryTopArticle();
	}

	/**
	 * 1-获取一级导航
	 * @Date 2018年9月6日
	 * @author gyp
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public List<Map<String, Object>> queryFirstMenu() {
		//获取一级按钮 
		List<Map<String, Object>> list = webDao.queryFirstMenu();

		for (Map<String, Object> firstMap : list) {
			firstMap.put("link", "/web/setLink.html?type=" + firstMap.get("redirectUrl") + "&id=" + firstMap.get("id"));
			List<Map<String, Object>> twoList = webDao.querySecondMenu(firstMap.get("id"));
			for (Map<String, Object> twoMap : twoList) {
				//twoMap.put("link", "/web/setLink.html?type=" + twoMap.get("redirectUrl") + "&id=" + twoMap.get("id"));

				List<Map<String, Object>> threeList = webDao.querySecondMenu(twoMap.get("id"));
				for (Map<String, Object> threeMap : threeList) {
					//threeMap.put("link","/web/setLink.html?type=" + threeMap.get("redirectUrl") + "&id=" + threeMap.get("id"));
				}
				twoMap.put("twoNav", threeList);
			}
			firstMap.put("nav", twoList);
		}
		//System.out.println(JSON.toJSON(list).toString());
		//获取二级数据
		return list;
	}

	/**
	 * 1-获取一级导航
	 * @Date 2018年9月11日
	 * @author gyp
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public List<Map<String, Object>> getFirstMenu() {
		//获取一级按钮 
		List<Map<String, Object>> list = webDao.queryFirstMenu();
		return list;
	}

	/**
	 * 1-获取二级导航及以下
	 * @Date 2018年9月6日
	 * @author gyp
	 * @param id  一级导航的id
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	public List<Map<String, Object>> querySecondMenu(String id) {
		List<Map<String, Object>> secondMap = webDao.querySecondMenu(id);
		//获取第三层导航数据
		for (Map<String, Object> sMap : secondMap) {
			if ("0".equals(sMap.get("isRedirect"))) {
				List<Map<String, Object>> threeMap = webDao.querySecondMenu(sMap.get("id"));
				sMap.put("threeMap", threeMap);
			}
		}
		return secondMap;
	}

	public Map<String, Object> queryTopNode() {
		Map<String, Object> nodemap = webDao.queryTopNode();
		nodemap.put("arlist", webDao.queryTopArticleByNode(nodemap.get("id")));
		return nodemap;
	}

	public Map<String, Object> queryTopNodeCreaTime() {
		Map<String, Object> nodemap = webDao.queryTopNode();
		nodemap.put("arlist", webDao.queryTopArticleByCreatTime(nodemap.get("id")));
		return nodemap;
	}

	public List<Map<String, Object>> queryTopNodeInfo() {
		List<Map<String, Object>> rlist = new ArrayList<Map<String, Object>>();

		List<Map<String, Object>> typelist = webDao.queryNodeType();
		for (int i = 0; i < typelist.size(); i++) {
			Map<String, Object> tmap = typelist.get(i);
			List<Map<String, Object>> nodelist = webDao.queryTopNodeByType(tmap.get("id"));
			List<Map<String, Object>> newlist = new ArrayList<Map<String, Object>>();
			for (int j = 0; j < nodelist.size(); j++) {
				Map<String, Object> nmap = nodelist.get(j);
				List articlelist = webDao.queryTopArticleByNode(nmap.get("id"));
				nmap.put("alist", articlelist);
				nmap.put("asize", articlelist.size());
				newlist.add(nmap);
			}

			tmap.put("nlist", newlist);
			tmap.put("listsize", nodelist.size());
			rlist.add(tmap);
		}

		return rlist;
	}

	/**
	 * 
	 * 项目名称：sftj-offical-site
	 * 描述：添加用户信息
	 * 创建人： ln
	 * 创建时间： 2016年11月30日
	 * 标记：
	 * @param paramsMap
	 * @return
	 * @version
	 */
	public boolean addUserIndex(Map<String, Object> paramsMap) {
		return webDao.addUserIndex(paramsMap);
	}

	/**
	 * 
	 * 项目名称：sftj-offical-site
	 * 描述：校验用户信息
	 * 创建人： ln
	 * 创建时间： 2016年12月2日
	 * 标记：
	 * @param paramsMap
	 * @return
	 * @version
	 */
	public boolean checkUser(Map<String, Object> paramsMap) {
		return webDao.checkUser(paramsMap);
	}

	/**
	 * 
	 * 项目名称：sftj-offical-site
	 * 描述：新闻列表，用于手机端入口。H5
	 * 创建人： ln
	 * 创建时间： 2017年1月6日
	 * 标记：
	 * @param request
	 * @param response
	 * @return
	 * @version
	 */
	public PageObject queryNewsList(Map<String, Object> paramsMap) {

		return webDao.queryNewList(paramsMap);
	}

	/**
	 * 
	 * 项目名称：sftj-offical-site
	 * 描述：阅读人数+1
	 * 创建人： ln
	 * 创建时间： 2017年1月6日
	 * 标记：
	 * @param paramsMap
	 * @version
	 */
	public void updateReadNum(Map<String, Object> paramsMap) {
		webDao.updateReadNum(paramsMap);

	}

	/**
	 * 
	 * 项目名称：sftj-offical-site
	 * 描述：获取置顶内容
	 * 创建人： ln
	 * 创建时间： 2017年1月6日
	 * 标记：
	 * @return
	 * @version
	 */
	public List<Map<String, Object>> queryNewListTop(Map<String, Object> paramsMap) {

		return webDao.queryNewListTop(paramsMap);
	}

}
